package com.qf.lanzhou.shop.api.service;

import com.qf.lanzhou.shop.pojo.entity.ParentsOrder;
import com.qf.lanzhou.shop.pojo.entity.ReceivingAddress;
import com.qf.lanzhou.shop.pojo.entity.SonOrder;
import com.qf.lanzhou.shop.pojo.qo.OrderAndAddress;
import com.qf.lanzhou.shop.pojo.qo.OrderParm;

import java.util.List;

/**
 * @author jack
 */
public interface OrderService {
    /**
     * 生成父订单
     * @param parentsOrder
     * @return false为成功
     */
    boolean insertParents(ParentsOrder parentsOrder);

    /**
     * 生成子订单
     * @param order
     * @return 成功返回false
     */
    boolean insertSon(SonOrder order);

    /**
     * 获取一条父订单中的全部子订单
     * @param orderParm
     * @return
     */
    List<SonOrder> getSonsOrder(OrderParm orderParm);

    /**
     * 通过ID获取父订单
     * @param id
     * @return
     */
    ParentsOrder gerParentsOrder(Long id);

    /**
     * 通过父ID获取地址
     * @param id
     * @return
     */
    ReceivingAddress selectAddressByParentsId(Long id);

    /**
     * 通过子ID获取父订单
     * @param id
     * @return
     */
    ParentsOrder selectBySonOrderId(Long id);

    /**
     * 通过子ID获取子订单
     * @param id
     * @return
     */
    SonOrder selectSonOrderById(Long id);

    /**
     * 选择地址 修改父订单的地址ID
     * @param orderAndAddress
     * @return
     */
    boolean selectAddress(OrderAndAddress orderAndAddress);

    /**
     * 通过父ID获取所有子订单
     * @param id
     * @return
     */
    List<SonOrder> selectSonOrder(Long id);

    /**
     * 通过ID获取卖家名字
     * @param id 卖家ID
     * @return
     */
    String getSellerName(Long id);
}
